#pragma once

class FileDesc;

class DataSource
{
public:
	DataSource(const std::string& path);
	~DataSource();

	const std::string&	GetPath() const;
	void				UpdateAll();
	IFiletype*			GetFile(const std::string& name);

	const std::map<std::string, IFiletype*>& GetFilesList() const;

private:
	const std::string m_path;

	void				UpdateRec(const std::string& path);
	void				RegisterFile(const std::string& filepath);

	std::map<std::string, IFiletype*> m_files;
};

